import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * Created by loso on 2017/3/17.
 */
public class _438_FindAllAnagramsInaString {
    public List<Integer> findAnagrams(String s, String p) {
        int[] alpha = new int[26];
        List<Integer> out = new ArrayList<>();
        int len = p.length();
        if (s.length() < len){
            return out;
        }

        for (int i = 0; i < len; i++) {
            alpha[p.charAt(i)-'a']++;
        }
        for (int i = 0; i < len; i++) {
            alpha[s.charAt(i)-'a']--;
        }

        boolean flag = false;
        for (int i = len; i < s.length(); i++) {
            flag = true;
            for (int j = 0; j < 26; j++) {
                if (alpha[j]<0){
                    flag = false;
                    break;
                }
            }
            if (flag){
                out.add(i - len);
            }
            alpha[s.charAt(i-len)-'a']++;
            alpha[s.charAt(i)-'a']--;
        }
        return out;
    }
}
